Skip to main content

Asynchronous product unpublication through the GraphQL API

Major Upgrade


In this release, we’ve added the ability to asynchronously unpublish products via our GraphQL APIs. This feature will enable Marketplace Managers to unpublish either individual products or multiple products at the same time with validation and real-time status tracking to ensure data integrity of products is maintained.

📝 Note: Due to infrastructure limitations, the feature will not be available for some customers. For more information on feature availability, contact your AppDirect technical representative.

Customer impacts

  • API-driven unpublication
    Enables programmatic unpublication of products without requiring UI access—ideal for fully automated, headless commerce systems.
  • Operational resilience
    Asynchronous processing ensures deletion operations are resilient to system failures, with automatic retries and comprehensive error tracking.
  • Real-time process visibility
    Query process status and handle errors through API, ensuring transparency and traceability for long-running operations.
  • Bulk operations support
    Efficient handling of multiple product unpublications simultaneously, ideal for large-scale catalog management, seasonal product removal, and automated lifecycle management.
  • Robust validation and safety
    Comprehensive pre-unpublication validation prevents accidental unpublication of products with active dependencies like purchase orders or marketplace associations.
  • Consistent architecture
    Follows proven Temporal workflow patterns, ensuring maintainability and consistency across product lifecycle operations.

Key changes and enhancements

AspectChanges
API accessIntroduced GraphQL mutation triggerProductUnpublicationProcess and query productUnpublicationProcess.
Processing modelAsynchronous.
ValidationMulti-stage checks for purchase orders, marketplace associations, and application status.
Data cleanupRemoves published versions of products while preserving working copies.
Error handlingStructured error responses with specific error types: DuplicateUnpublicationTriggeredError, MonolithUnpublicationError.
Process trackingProcess tracking with status transitions (STARTED → UNPUBLISHING → COMPLETED/ERRORED).
Bulk supportProcesses multiple product unpublications in parallel, with individual tracking.
AuthorizationRole-based access control supporting ROLE_CHANNEL_ADMIN with planned ROLE_PARTNER support.

GraphQL API changes

New mutation:

triggerProductUnpublicationProcess

  • Purpose: Initiates asynchronous unpublication for one or more products.
  • Input:
    • TriggerProductUnpublicationProcessInput: Accepts an array of product IDs.
  • Response:
    • TriggerProductUnpublicationProcessPayload: Returns process tracking information.

New query:

productUnpublicationProcess

  • Purpose: Retrieves unpublication process status and details by process ID.
  • Response: Provides real-time status updates and error information for monitoring long-running operations.

Validation enhancements

  • Products must be currently published to be eligible for unpublication.
  • Products with active purchase orders cannot be unpublished.
  • Duplicate unpublication requests are automatically rejected.
  • Comprehensive permission checks based on user roles and product ownership.

Feature enablement

No feature enablement is required.

Setting enablement

No setting enablement is required.

Documentation

Refer to GraphQL reference documentation.

Was this page helpful?